home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 5
/
Gold Medal Software - Volume 5 (Gold Medal) (1995).iso
/
windows
/
win31
/
cenviw.arj
/
WINDOW.LIB
< prev
next >
Wrap
Text File
|
1994-03-08
|
13KB
|
378 lines
// Window.lib - Common defines for creating and defining windows
// ver.1 using the MakeWindow, BreakWindow, and DoWindows
// functions of CEnvi.
#define WM_USER 0x0400
#define WS_OVERLAPPED 0x00000000
#define WS_POPUP 0x80000000
#define WS_CHILD 0x40000000
#define WS_MINIMIZE 0x20000000
#define WS_VISIBLE 0x10000000
#define WS_DISABLED 0x08000000
#define WS_CLIPSIBLINGS 0x04000000
#define WS_CLIPCHILDREN 0x02000000
#define WS_MAXIMIZE 0x01000000
#define WS_CAPTION 0x00C00000 /* WS_BORDER | WS_DLGFRAME */
#define WS_BORDER 0x00800000
#define WS_DLGFRAME 0x00400000
#define WS_VSCROLL 0x00200000
#define WS_HSCROLL 0x00100000
#define WS_SYSMENU 0x00080000
#define WS_THICKFRAME 0x00040000
#define WS_GROUP 0x00020000
#define WS_TABSTOP 0x00010000
#define WS_MINIMIZEBOX 0x00020000
#define WS_MAXIMIZEBOX 0x00010000
#define WS_TILED WS_OVERLAPPED
#define WS_ICONIC WS_MINIMIZE
#define WS_SIZEBOX WS_THICKFRAME
/* Common Window Styles */
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
#define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
#define WS_CHILDWINDOW (WS_CHILD)
#define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
/* Extended Window Styles */
#define WS_EX_DLGMODALFRAME 0x1
#define WS_EX_NOPARENTNOTIFY 0x4
#define CW_USEDEFAULT 0x8000
/* Button Control Styles */
#define BS_PUSHBUTTON 0x00
#define BS_DEFPUSHBUTTON 0x01
#define BS_CHECKBOX 0x02
#define BS_AUTOCHECKBOX 0x03
#define BS_RADIOBUTTON 0x04
#define BS_3STATE 0x05
#define BS_AUTO3STATE 0x06
#define BS_GROUPBOX 0x07
#define BS_USERBUTTON 0x08
#define BS_AUTORADIOBUTTON 0x09
#define BS_PUSHBOX 0x0A
#define BS_OWNERDRAW 0x0B
#define BS_LEFTTEXT 0x20
/* Dialog Styles */
#define DS_ABSALIGN 0x01
#define DS_SYSMODAL 0x02
#define DS_LOCALEDIT 0x20 // Edit items get Local storage.
#define DS_SETFONT 0x40 // User specified font for Dlg controls
#define DS_MODALFRAME 0x80 // Can be combined with WS_CAPTION
#define DS_NOIDLEMSG 0x100 // WM_ENTERIDLE message will not be sent
/* Static Control Constants */
#define SS_LEFT 0x00
#define SS_CENTER 0x01
#define SS_RIGHT 0x02
#define SS_ICON 0x03
#define SS_BLACKRECT 0x04
#define SS_GRAYRECT 0x05
#define SS_WHITERECT 0x06
#define SS_BLACKFRAME 0x07
#define SS_GRAYFRAME 0x08
#define SS_WHITEFRAME 0x09
#define SS_USERITEM 0x0A
#define SS_SIMPLE 0x0B
#define SS_LEFTNOWORDWRAP 0x0C
#define SS_NOPREFIX 0x80 /* Don't do "&" character translation */
/* Edit Control Styles */
#define ES_LEFT 0x0000
#define ES_CENTER 0x0001
#define ES_RIGHT 0x0002
#define ES_MULTILINE 0x0004
#define ES_UPPERCASE 0x0008
#define ES_LOWERCASE 0x0010
#define ES_PASSWORD 0x0020
#define ES_AUTOVSCROLL 0x0040
#define ES_AUTOHSCROLL 0x0080
#define ES_NOHIDESEL 0x0100
#define ES_OEMCONVERT 0x0400
/* Edit Control Notification Codes */
#define EN_SETFOCUS 0x0100
#define EN_KILLFOCUS 0x0200
#define EN_CHANGE 0x0300
#define EN_UPDATE 0x0400
#define EN_ERRSPACE 0x0500
#define EN_MAXTEXT 0x0501
#define EN_HSCROLL 0x0601
#define EN_VSCROLL 0x0602
/* GetWindow() Constants */
#define GW_HWNDFIRST 0
#define GW_HWNDLAST 1
#define GW_HWNDNEXT 2
#define GW_HWNDPREV 3
#define GW_OWNER 4
#define GW_CHILD 5
/* User Button Notification Codes */
#define BN_CLICKED 0
#define BN_PAINT 1
#define BN_HILITE 2
#define BN_UNHILITE 3
#define BN_DISABLE 4
#define BN_DOUBLECLICKED 5
/* Button Control Messages */
#define BM_GETCHECK (WM_USER+0)
#define BM_SETCHECK (WM_USER+1)
#define BM_GETSTATE (WM_USER+2)
#define BM_SETSTATE (WM_USER+3)
#define BM_SETSTYLE (WM_USER+4)
/* Listbox Styles */
#define LBS_NOTIFY 0x0001
#define LBS_SORT 0x0002
#define LBS_NOREDRAW 0x0004
#define LBS_MULTIPLESEL 0x0008
#define LBS_OWNERDRAWFIXED 0x0010
#define LBS_OWNERDRAWVARIABLE 0x0020
#define LBS_HASSTRINGS 0x0040
#define LBS_USETABSTOPS 0x0080
#define LBS_NOINTEGRALHEIGHT 0x0100
#define LBS_MULTICOLUMN 0x0200
#define LBS_WANTKEYBOARDINPUT 0x0400
#define LBS_EXTENDEDSEL 0x0800
#define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
/* Listbox messages */
#define LB_ADDSTRING (WM_USER+1)
#define LB_INSERTSTRING (WM_USER+2)
#define LB_DELETESTRING (WM_USER+3)
#define LB_RESETCONTENT (WM_USER+5)
#define LB_SETSEL (WM_USER+6)
#define LB_SETCURSEL (WM_USER+7)
#define LB_GETSEL (WM_USER+8)
#define LB_GETCURSEL (WM_USER+9)
#define LB_GETTEXT (WM_USER+10)
#define LB_GETTEXTLEN (WM_USER+11)
#define LB_GETCOUNT (WM_USER+12)
#define LB_SELECTSTRING (WM_USER+13)
#define LB_DIR (WM_USER+14)
#define LB_GETTOPINDEX (WM_USER+15)
#define LB_FINDSTRING (WM_USER+16)
#define LB_GETSELCOUNT (WM_USER+17)
#define LB_GETSELITEMS (WM_USER+18)
#define LB_SETTABSTOPS (WM_USER+19)
#define LB_GETHORIZONTALEXTENT (WM_USER+20)
#define LB_SETHORIZONTALEXTENT (WM_USER+21)
#define LB_SETCOLUMNWIDTH (WM_USER+22)
#define LB_SETTOPINDEX (WM_USER+24)
#define LB_GETITEMRECT (WM_USER+25)
#define LB_GETITEMDATA (WM_USER+26)
#define LB_SETITEMDATA (WM_USER+27)
#define LB_SELITEMRANGE (WM_USER+28)
#define LB_MSGMAX (WM_USER+33)
/* Listbox Return Values */
#define LB_OKAY 0
#define LB_ERR (-1)
#define LB_ERRSPACE (-2)
/* Combo Box styles */
#define CBS_SIMPLE 0x0001
#define CBS_DROPDOWN 0x0002
#define CBS_DROPDOWNLIST 0x0003
#define CBS_OWNERDRAWFIXED 0x0010
#define CBS_OWNERDRAWVARIABLE 0x0020
#define CBS_AUTOHSCROLL 0x0040
#define CBS_OEMCONVERT 0x0080
#define CBS_SORT 0x0100
#define CBS_HASSTRINGS 0x0200
#define CBS_NOINTEGRALHEIGHT 0x0400
/* Combo Box return Values */
#define CB_OKAY 0
#define CB_ERR (-1)
#define CB_ERRSPACE (-2)
/* Combo Box Notification Codes */
#define CBN_ERRSPACE (-1)
#define CBN_SELCHANGE 1
#define CBN_DBLCLK 2
#define CBN_SETFOCUS 3
#define CBN_KILLFOCUS 4
#define CBN_EDITCHANGE 5
#define CBN_EDITUPDATE 6
#define CBN_DROPDOWN 7
/* Combo Box messages */
#define CB_GETEDITSEL (WM_USER+0)
#define CB_LIMITTEXT (WM_USER+1)
#define CB_SETEDITSEL (WM_USER+2)
#define CB_ADDSTRING (WM_USER+3)
#define CB_DELETESTRING (WM_USER+4)
#define CB_DIR (WM_USER+5)
#define CB_GETCOUNT (WM_USER+6)
#define CB_GETCURSEL (WM_USER+7)
#define CB_GETLBTEXT (WM_USER+8)
#define CB_GETLBTEXTLEN (WM_USER+9)
#define CB_INSERTSTRING (WM_USER+10)
#define CB_RESETCONTENT (WM_USER+11)
#define CB_FINDSTRING (WM_USER+12)
#define CB_SELECTSTRING (WM_USER+13)
#define CB_SETCURSEL (WM_USER+14)
#define CB_SHOWDROPDOWN (WM_USER+15)
#define CB_GETITEMDATA (WM_USER+16)
#define CB_SETITEMDATA (WM_USER+17)
#define CB_GETDROPPEDCONTROLRECT (WM_USER+18)
/* Edit Control Messages */
#define EM_GETSEL (WM_USER+0)
#define EM_SETSEL (WM_USER+1)
#define EM_GETRECT (WM_USER+2)
#define EM_SETRECT (WM_USER+3)
#define EM_SETRECTNP (WM_USER+4)
#define EM_SCROLL (WM_USER+5)
#define EM_LINESCROLL (WM_USER+6)
#define EM_GETMODIFY (WM_USER+8)
#define EM_SETMODIFY (WM_USER+9)
#define EM_GETLINECOUNT (WM_USER+10)
#define EM_LINEINDEX (WM_USER+11)
#define EM_SETHANDLE (WM_USER+12)
#define EM_GETHANDLE (WM_USER+13)
#define EM_GETTHUMB (WM_USER+14)
#define EM_LINELENGTH (WM_USER+17)
#define EM_REPLACESEL (WM_USER+18)
#define EM_SETFONT (WM_USER+19)
#define EM_GETLINE (WM_USER+20)
#define EM_LIMITTEXT (WM_USER+21)
#define EM_CANUNDO (WM_USER+22)
#define EM_UNDO (WM_USER+23)
#define EM_FMTLINES (WM_USER+24)
#define EM_LINEFROMCHAR (WM_USER+25)
#define EM_SETWORDBREAK (WM_USER+26)
#define EM_SETTABSTOPS (WM_USER+27)
#define EM_SETPASSWORDCHAR (WM_USER+28)
#define EM_EMPTYUNDOBUFFER (WM_USER+29)
GetDC(hwnd)
{
return DynamicLink("USER","GETDC",SWORD16,PASCAL,hwnd);
}
ReleaseDC(hwnd,hdc)
{
return DynamicLink("USER","RELEASEDC",SWORD16,PASCAL,hwnd,hdc);
}
GetStockObject(Index)
{
#define WHITE_BRUSH 0
#define LTGRAY_BRUSH 1
#define GRAY_BRUSH 2
#define DKGRAY_BRUSH 3
#define BLACK_BRUSH 4
#define NULL_BRUSH 5
#define HOLLOW_BRUSH NULL_BRUSH
#define WHITE_PEN 6
#define BLACK_PEN 7
#define NULL_PEN 8
#define OEM_FIXED_FONT 10
#define ANSI_FIXED_FONT 11
#define ANSI_VAR_FONT 12
#define SYSTEM_FONT 13
#define DEVICE_DEFAULT_FONT 14
#define DEFAULT_PALETTE 15
#define SYSTEM_FIXED_FONT 16
return DynamicLink("GDI","GETSTOCKOBJECT",SWORD16,PASCAL,Index);
}
SelectObject(hDc,hObject)
{
return DynamicLink("GDI","SELECTOBJECT",SWORD16,PASCAL,hDc,hObject);
}
GetTextMetrics(hdc,Metrics)
{
// Return structure with the following member fields
// Height Total character height (ascent _ descent)
// Ascent units above baseline
// Descent units below baseline
// InternalLeading space in character for accents
// ExternalLeading space between rows
// AveCharWidth average character width
// MaxCharWidth width of widest character
// Weight
// Italic italic font if non-zero
// Underlined underlined font if non-zero
// StruckOut struckout font if non-zero
// FirstChar value of first character in this font
// LastChar value of last characte in this font
// DefaultChar character to substitute for chars not in font
// BreakChar character for word breaks and text justification
// PitchAndFamily lowest bit set for variable pitch; 0xF0 bits are family
// CharSet character set of the font
// Overhang per-string extra width
// DigitizedAspectX horizontal aspect
// DigitizedAspectY vertical aspect; aspect ratio is X/Y
BLObSize(_gtm,31);
if ( _ret = DynamicLink("GDI","GETTEXTMETRICS",SWORD16,PASCAL,hdc,_gtm) ) {
Metrics.Height = BLObGet(_gtm,0,SWORD16);
Metrics.Ascent = BLObGet(_gtm,2,SWORD16);
Metrics.Descent = BLObGet(_gtm,4,SWORD16);
Metrics.InternalLeading = BLObGet(_gtm,6,SWORD16);
Metrics.ExternalLeading = BLObGet(_gtm,8,SWORD16);
Metrics.AveCharWidth = BLObGet(_gtm,10,SWORD16);
Metrics.MaxCharWidth = BLObGet(_gtm,12,SWORD16);
Metrics.Weight = BLObGet(_gtm,14,SWORD16);
Metrics.Italic = BLObGet(_gtm,16,UWORD8);
Metrics.Underlined = BLObGet(_gtm,17,UWORD8);
Metrics.StruckOut = BLObGet(_gtm,18,UWORD8);
Metrics.FirstChar = BLObGet(_gtm,19,UWORD8);
Metrics.LastChar = BLObGet(_gtm,20,UWORD8);
Metrics.DefaultChar = BLObGet(_gtm,21,UWORD8);
Metrics.BreakChar = BLObGet(_gtm,22,UWORD8);
Metrics.PitchAndFamily = BLObGet(_gtm,23,UWORD8);
Metrics.CharSet = BLObGet(_gtm,24,UWORD8);
Metrics.Overhang = BLObGet(_gtm,25,SWORD16);
Metrics.DigitizedAspectX= BLObGet(_gtm,27,SWORD16);
Metrics.DigitizedAspectY= BLObGet(_gtm,29,SWORD16);
}
return(_ret);
}
GetWindow(pHwnd,pCmd)
{
return DynamicLink("USER","GETWINDOW",SWORD16,PASCAL,pHwnd,pCmd);
}
#define GWL_WNDPROC (-4)
#define GWW_HINSTANCE (-6)
#define GWW_HWNDPARENT (-8)
#define GWW_ID (-12)
#define GWL_STYLE (-16)
#define GWL_EXSTYLE (-20)
GetWindowWord(pHwnd,pIndex)
{
return DynamicLink("USER","GETWINDOWWORD",UWORD16,PASCAL,pHwnd,pIndex);
}
SetWindowWord(pHwnd,pIndex,pWord)
{
return DynamicLink("USER","SETWINDOWWORD",UWORD16,PASCAL,pHwnd,pIndex,pWord);
}
GetWindowLong(pHwnd,pIndex)
{
return DynamicLink("USER","GETWINDOWLONG",SWORD32,PASCAL,pHwnd,pIndex);
}
SetWindowLong(pHwnd,pIndex,pLong)
{
return DynamicLink("USER","SETWINDOWLONG",UWORD16,PASCAL,
pHwnd,pIndex,pLong >> 16, pLong & 0xFFFF);
}